Board align image acquisition device with improved interface

ABSTRACT

An electronics assembly system includes an image acquisition system that is coupled to a controller through an improved interface. The coupling facilitates advanced monitoring and control of the image acquisition system. Multiple image acquisition systems can be coupled to the controller over the same interface.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation application of Ser. No. 10/017,501, filed Dec. 14, 2001 now abandoned, which this application is base on and claims the benefit of U.S. provisional patent application Ser. No. 60/255,925, filed Dec. 15, 2000, entitled “CAMERA WITH IEEE 1394 INTERFACE.”

BACKGROUND OF THE INVENTION

The electronics assembly industry uses machines such as pick and place machines to automatically pick components from component feeders and place the components upon circuit boards during board assembly. Subsequently, the components themselves are permanently attached to the circuit board at locations where the pick and place machine has deposited them. Due the relatively high speed required for such operations as well as the extremely small-scale of the components themselves, component placement and alignment are extremely important. In order to facilitate advances in component placement and alignment, optical systems and associated processors have advanced accordingly. One common element of a pick and place system is known as the board align image acquisition device. Typically, this image acquisition device resides upon a placement head and is used to essentially image a reference position (also known as a fiducial) on the board. By determining the placement of the head via encoders, or other suitable position measuring means, associated therewith, and determining the position of the fiducial from the image supplied by the board align camera, the relative position of the placement head with respect to the board is precisely known.

The position of the component to be placed on the placement head is calculated in a similar manner but with a generally upward-looking component align (CA) image acquisition device. The component align image acquisition device generally acquires an image of the component to be placed after it has been picked up by the placement head. The host processor then determines the position of the component on the placement head and knowing the position of the placement head with respect to the board, so manipulates the component to be placed that it is oriented correctly and placed properly upon the board. Thus, a typical pick and place system includes a pair of image acquisition device (board align and component align). Due to the relatively high-speed operation of pick and place machines, there is a relatively large amount of data (both image data and control data) that passes between the host processor and the various image acquisition devices and their associated illuminators. A pick and place system that could accommodate the relatively high data transfer burdens while simultaneously simplifying wiring and reducing costs would be a significant increase in the art. Moreover, if such system could provide data transfer rate head room beyond that which is currently needed and accommodate future scalability, system implementation would be facilitated.

SUMMARY OF THE INVENTION

An electronics assembly system includes an image acquisition system that is coupled to a controller through an improved interface. The coupling facilitates advanced monitoring and control of the image acquisition system. Multiple image acquisition devices can be coupled to the controller over the same interface.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagrammatic view of a known pick and place machine in which embodiments of the present invention are particularly useful.

FIG. 2 is a perspective view of a placement head including a board align image acquisition device in accordance with an embodiment of the present invention.

FIG. 3 is a diagrammatic view of a portion of a pick and place machine in accordance with an embodiment of the present invention.

FIG. 4 is a system block diagram of an image acquisition system in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 is a diagrammatic view of a pick and place machine 100 in accordance with the prior art. Machine 100 includes placement head 102 upon which are mounted component align (CA) image acquisition device 104, nozzles 106 and board align (BA) image acquisition device 108. Controller 110 is coupled to devices 104 and 108 as well as encoders operably coupled to placement head 102 which encoders indicate position of placement head 102 along X and Y axes.

FIG. 2 is a perspective view of placement head 102. As illustrated, placement head 102 includes a pair of pick and place units 112 each of pick and place units 112 include a nozzle 106 that is adapted to releasably couple a component to be placed such as components 114. Pick and place units 112 are adapted to displace components 114 along the Z axis to place components 114 upon a circuit board (not shown). While components 114 are releasably held by nozzles 106, relative motion between the nozzles 106 and the component align image acquisition device 104 is translated beneath components 114 while imaging components 114 with device 104 allows for determination of the relative orientations of components 114 with respect to the nozzles 106. FIG. 2 also illustrates board align (BA) image acquisition device 108 disposed proximate an edge of placement head 102 and facing downward. Device 108 acquires an image of a reference position marker (fiducial) on the circuit board in order to allow calculation of the placement head 102 position with respect to the circuit board.

FIG. 3 is a diagrammatic view of a portion of a pick and place machine in accordance with an embodiment of the present invention. Host 110 is coupled to X and Y encoders (illustrated diagrammatically at reference numerals 116 and 118, respectively). Additionally, host 110 is coupled to board align image acquisition device 108 via interface 120. Device 108 is also physically coupled to robot 122 which is used to actuate nozzle 106 to pick up components 114 and place them upon printed circuit board (PCB) 124. As illustrated, board 124 includes a reference position mark, or fiducial, 126. When required, board align image acquisition device 108 acquires an image of fiducial 126, and/or additional fiducials, and computes a position of placement head 102 with respect to board 124. While not shown in FIG. 3, a component align image acquisition device is also used to acquire images of the components themselves to calculate component orientation and position such that the components can be accurately placed upon board 124. Further, board align image acquisition device 108 and component align image acquisition device 104 typically have associated lighting. Thus, a significant amount of data overhead is created wherein image data from device 108 and/or device 104 must be transmitted to host controller 110. One aspect of embodiments of the present invention is placing one or more of the image acquisition devices (board align, component align, or other suitable devices) upon a bus that accommodates such co-existence without significantly increasing complexity or cost.

One example of such a bus is known as the IEEE 1394 Standard for High Performance Serial Bus the standards of which are published by the Institute of Electrical and Electronics Engineers Inc. Information about the IEEE 1394 serial bus standard may be found on the world wide web. The IEEE 1394 standard provides for data transmission speeds at 100, 200, 400 megabits per second and beyond over the serial bus. The format and type of information to be sent between the host and the digital camera over the IEEE 1394 serial bus adheres to the 1394 Trade Association's 1394-based Digital Camera Specification, Version 1.3, dated Jul. 25, 2000. As used herein “Specification” shall include any specification compatible, either presently or backwardly, with the IEEE 1394-based Digital Camera Specification. While the Specification listed above does not provide features which facilitate the use in pick and place machines, there is an ability provided in the Specification to add additional features. This is done via advanced control and status registers (CSR). A portion of this patent document will make reference to the Specification. Information regarding the Specification may be found on the worldwide web. Some of the features useful for device 108 but not currently set forth in the Specification follow. The Specification does not set forth an ability to control four or more illumination channels. In additional to the control of illumination, there are currently no characterization registers available to determine the capabilities of each image acquisition device. Another feature that is not provided by the Specification is the ability to set illumination counters to help determine lifetime of the illuminators themselves. Further, there is currently no storage provided by the Specification for mechanical and optical parameters that could be characterized during calibration. These features and their implementation in embodiments of the present invention will be set forth in greater detail below.

FIG. 4 is a diagrammatic view of BA image acquisition device 108 in accordance with an embodiment of the present invention. Device 108 couples to host 110 through port 130 along Specification bus 132. Bus 132 is coupled to link and physical layer controller 134. Preferably, link and physical layer controllers are preferably commercially available devices sold by Texas Instruments under the trade designations TSB42AB4PDT, and TSB41AB1PHP, respectively. Controller 134 is coupled to microcontroller 136 and programmable logic device 138 through bus 140. Preferably, bus 140 is a 16-bit 68000 bus. Microcontroller 136 is preferably a microcontroller sold under the trade designation Atmega103L available from Atmel of San Jose, Calif. Microcontroller 136 is also coupled to analog temperature sensor 142, four-channel digital-to-analog converter 144 and CCD and support chip set 146. Preferably, microcontroller 136 is coupled to converter 144 and chip set 146 through a serial peripheral interface bus 148. Through programmable logic device 138 and image data bus 151, CCD the support chip set 146 can acquire and provide an image to IEEE 1394 controller 134. During acquisition of such an image, illuminators 150 are engaged in response to control signals from microcontroller 136 and/or programmable logic device 138. Illuminators 150 can include a darkfield illuminator, and/or brightfield illuminator. One of the primary features of adapting device 108 for operation with IEEE 1394 bus 132 is that additional image acquisition devices and IEEE 1394 bus-compatible devices can be coupled to the same bus. This reduces system wiring and complexity while also facilitating standardization and implementation.

The following description sets forth a preferred embodiment in such detail that specific data values for specific control and status registers in the 1394 specification are provided.

Basic Function Inquiry Register Offset Name Field Bit Value Description 400 BASIC Memory Channel (31 . . . 28) 0 Maximum memory (Read FUNC_INQ channel number Only) (27 . . . 21) 0 Reserved Multi_shot_Inq 20 0 No Multi shot transmission capable One-shot-Inq 19 1 One shot transmission capable (18 . . . 17) 0 Reserved Cam_Power_(—) 16 0 There is no Cntl camera process power ON/OFF capability (15 . . . 1)  0 Reserved Advanced_(—)  0 1 Indicates Feature_Inq presence of advanced failure.

Feature Presence Inquiry Registers Feature Hi Inquiry Offset Name Field Bit Value Description 404 FEATURE_(—) (31 . . . 13) 0 Reserved (Read HI_INQ Trigger 12 1 Trigger control Only) Temperature 11 1 Temperature read-only Focus 10 0 No Focus control Iris 9 0 No Iris control Gain 8 1 Gain control Shutter 7 1 Shutter speed control Gamma 6 0 No Gamma control Saturation 5 0 No Saturation control Hue 4 0 No Hue control White Balance 3 0 No White balance control Sharpness 2 0 No Sharpness Control Auto Exposure 1 0 No Auto Exposure Control Brightness 0 1 Brightness Control Capable

Feature Lo Inquiry Off- set Name Field Bit Value Description 408 FEATURE_(—) Zoom 0 0 No Zoom Control (Read LO_INQ Pan 1 0 No Pan control Only) Tilt 2 0 No Tilt control Optical 3 0 No Optical filter filter control  (4 . . . 15) 0 Reserved Capture_(—) 16 0 N/A (Capturing Size image size for format 6) Capture_(—) 17 0 N/A (Capture Quality image quality for Format 6) (18 . . . 31) 0 Reserved

Advanced Feature CSR Offset Off- set Name Field Bit Value Description 480 ADVANCED_(—) Advanced (0 . . . 31) 3FC CSR quadlet (Read FEATURE_(—) Feature_(—) 0000 offset for Only) INQ Quadlet_(—) Advanced Feature Offset CSR. This offset is from the initial register space of FFFF F000 0000. This will put the base of the advanced feature CSR at FFF FFF0 0000.

Feature Elements Inquiry Registers Brightness Inquiry Offset Name Field Bit Value Description 500 BRIGHTNESS_(—) Presence_Inq 0 1 Presence of (Read INQ this feature only) (1 . . . 2) 0 Reserved One_Push_Inq 3 0 One push auto mode (Controlled automatically by camera only once) Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature ON and OFF Auto_Inq 6 0 Auto mode (controlled by camera) Manual_Inq 7 1 Manual mode (controlled by the user) MIN_Value  (8 . . . 19) 0 MIN value for this feature control MAX_Value (20 . . . 31) 640 MAX value for this feature control

Shutter Inquiry Offset Name Field Bit Value Description 51C SHUTTER_(—) Presence Inq 0 1 Presence of this (Read INQ feature only) (1 . . . 2) 0 Reserved One_Push_Inq 3 0 One push auto mode (Controlled automatically by camera only once) Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature ON and OFF Auto_Inq 6 1 Auto mode (controlled by camera) Manual_Inq 7 0 Manual mode (controlled by the user) MIN_Value  (8 . . . 19) 0 MIN value for this feature control MAX_Value (20 . . . 31) 400 MAX value for this feature control

Gain Inquiry Offset Name Field Bit Value Description 520 GAIN_INQ Presence Inq 0 1 Presence of (Read this feature only) (1 . . . 2) 0 Reserved One_Push_Inq 3 0 One push auto mode (Controlled automatically by camera only once) Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature ON and OFF Auto_Inq 6 0 Auto mode (controlled by camera) Manual_Inq 7 1 Manual mode (controlled by the user) MIN_Value  (8 . . . 19) 0 MIN value for this feature control MAX_Value (20 . . . 31) A28 MAX value for this feature control

Temperature Inquiry Offset Name Field Bit Value Description 52C TEMPERATURE_INQ Presence_(—) 0 1 Presence of (Read Inq this feature only) (1 . . . 2) 0 Reserved One_Push_(—) 3 0 One push Inq auto mode (Controlled automatically by camera only once) Read/Out_(—) 4 1 Capability Inq of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature ON and OFF Auto_Inq 6 1 Auto mode (controlled by camera) Manual_Inq 7 0 Manual mode (controlled by the user) MIN_Value  (8 . . . 19) 0 MIN value for this feature control in degree C. MAX_Value (20 . . . 31) 7Ch MAX value for this feature control in degree C.

Trigger Inquiry Offset Name Field Bit Val Description 530 TRIGGER_INQ Presence_Inq 0 1 Presence of this (Read feature only) (1 . . . 3) 0 Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature ON and OFF Polarity_Inq 6 0 Capability of changing the polarity of the trigger input  (7 . . . 15) 0 Reserved Trigger_Mode0_(—) 16 1 Presence of Inq Trigger mode 0 Trigger_Mode1_(—) 17 0 Presence of Inq Trigger mode 1 Trigger_Mode2_(—) 18 0 Presence of Inq Trigger mode 2 Trigger_Mode3_(—) 19 1 Presence of Inq Trigger mode 3 (20 . . . 31) 0 Reserved

Status and Control Registers for Camera Offset Name Field Bit Value Description 600 Cur-Frame_(—) Cur_Frame_(—) [0-2] 3 Current video (Read/ Rate Rate mode Mode_0-Mode_7 Only)  3 . . . 31 0 Reserved 604 Cur_V_Mode Cur_V _Mode 0 . . . 2 0 Current video (Read/ mode Only) Mode_0 . . . Mode_7  3 . . . 31 0 Reserved 608 Cur_V_Format Cur_V_Format (0 . . . 2) 7 Current video (Read/ Format Only) Format 0 . . . Format_7  (3 . . . 31) 0 Reserved 60C ISO ISO_Channel (0 . . . 3) 0 Isochronous (Read/ channel Write) number for video data transmission (4 . . . 5) 0 Reserved ISO_Speed (6 . . . 7) 2 Isochronous transmit speed code  (8 . . . 31) 0 Reserved 614 ISO_EN ISO_EN 0 0 1 = Start (Read/ ISO transmission Write) of data 0 = Stop ISO transmission of data  (1 . . . 31) 0 Reserved 61C ONE-SHOT One_Shot 0 0 1 - only one (Read/ frame Write) of video data is transmitted (self cleared after exposure) Multi_Shot 1 0 1 = N Frames of video data is transmitted  (2 . . . 16) 0 Reserved Control (16 . . . 31) 0 Count number Number for Multi-shot function

Feature Status and Control Registers Brightness Status and Control Offset Name Field Bit Value Description 800 BRIGHTNESS Presence_(—) 0 1 Presence of (Read/ Inq this Write feature Non- (1 . . . 4) 0 Reserved volatile) One_Push 5 0 Write “1” to begin work (self cleared) ON_OFF 6 1 0 = OFF; 1 = ON A_M_Mode 7 0 0 = manual; 1 = auto  (8 . . . 19) 0 Reserved Value (20 . . . 31) Calibrate Value

Shutter Status and Control Offset Name Field Bit Value Description 81C SHUTTER Presence Inq 0 1 Presence of (Read/ this feature Only) (1 . . . 4) 0 Reserved One_Push 5 0 Write “1” to begin work (self cleared) ON_OFF 6 1 0 = OFF; 1 = ON A_M_Mode 7 1 0 = manual; 1 = auto  (8 . . . 19) 0 Reserved Value (20 . . . 31) Variable Value

Gain Status and Control Offset Name Field Bit Val Description 820 GAIN Presence_(—) 0 1 Presence of this (Read/ Inq feature Write (1 . . . 4) 0 Reserved Non- One_Push 5 0 Write “1” to volatile) begin work (self cleared) On_Off_Inq 6 1 0 = OFF; 1 = ON A_M_Mode 7 0 0 = manual; 1 = auto  8 . . . 19 0 Reserved Value 20 . . . 31 calibrate Value

Temperature Status Offset Name Field Bit Value Description 82C TEMPERATURE Presence_(—) 0 1 Presence of (Read Inq this feature only) (1 . . . 4) 0 Reserved One_Push 5 0 Write “1” to begin work (self cleared) On_Off_(—) 6 1 0 = OFF; 1 = ON Inq A_M_Mode 7 1 0 = manual; 1 = auto Target  8 . . . 19 0 Aimed value Temperature of the temperature Temperature 20 . . . 31 variable Temperature at the present time (no default)

Trigger Mode Status and Control Offset Name Field Bit Value Description 830 TRIGGER_(—) Presence 0 1 Presence of (Read/ MODE Inq this feature Write) (1 . . . 5) zero Reserved ON_OFF 6 0 0-OFF; 1-ON Trigger 7 1 0-active low Polarity input; 1- active high input  (8 . . . 11) 0 Reserved Trigger (12 . . . 15) 0 Trigger mode Mode (16 . . . 19) 0 Reserved Parameter (20 . . . 31) 0 Parameter for trigger function Embodiments of the present invention use an additional CSR to provide registers for illumination control, calibration data and other unique functions. These functions are not part of the standard 1394-based Digital Camera Specification and were implemented using an advanced feature CSR Address of the advanced feature CSR is: Bus_ID, Node_ID, 0xFFFF FFF0 0000.

Access Control Register Offset Name Field Bit Value Description 000 ACCESS_(—) Feature  (0 . . . 31) ffffffff Write the (WRITE) CONTROL_REG ID_Hi upper quadlet of Feature ID 004 Feature  (0 . . . 15) ffff Write the (WRITE) ID_Lo lower doublet of Feature ID (16 . . . 19) f Constant Time_Out (20 . . . 31) fff Time-out value from unlocking CSR to using it in mS. 000 Node ID  (0 . . . 15) ffff Bus ID Node (READ) ID (16 . . . 31) ffff Constant 004  (0 . . . 19) ffff Constant (READ) Time_Out (20 . . . 31) fff Time-out value from unlocking CSR to using it in mS.

Inquiry Registers for Advanced Functions Offset Name Field Bit Value Description 008 Communication Bandwidth_(—) 0 0 Switch (Read) claim Isochionous channel ON/OFF  (1 . . . 31) 0 Reserved 010 Illumination Illum_Centroid 0 1 Centroid (Read) control Illum_Latency 1 1 Time from bigger to possible illumination in nanoseconds Illum Step 2 1 Illumination Size duration in nanoseconds [3-5] 0 Reserved Illum_Type_1 6 1 Illumination type definition Illum-_(—) 7 1 Illumination Duration_1 Duration Control Illum_(—) 8 1 Illumination Intensity_1 Intensity control Illum_Counter_1 9 1 Illumination counter control [10-11] 0 Reserved Illum_Type_2 12 1 Illumination type definition Illum-_(—) 13 1 Illumination Duration_2 Duration Control Illum_(—) 14 1 Illumination Intensity_2 Intensity control Illum_Counter_2 15 1 Illumination counter control [16-17] 0 Reserved Illum_Type_3 18 0 Illumination type definition Illum-_(—) 19 0 Illumination Duration_3 Duration Control Illum_(—) 20 0 Illumination Intensity_3 Intensity control Illum_Counter_3 21 0 Illumination counter control [22-23] 0 Reserved (more Illumination units) Illum_Type_4 24 0 Illumination type definition Illum_Duration_4 25 0 Illumination Duration control Illum_(—) 26 0 Illumination Intensity_4 Intensity control Illum_Counter_4 27 0 Illumination counter control [28-31] zero Reserved (more Illumination units) 018 Optical Pixel_Size 0 1 Pixel Size (Read) aux 1 1 1 Auxiliary field for future use aux 2 2 1 Auxiliary field for future use aux 3 3 1 Auxiliary field for future use  [4-31] 0 Reserved 020 Mechanical x_offset 0 1 x-axis (Read) offset in μm y_offset 1 1 y-axis offset in μm theta_offset 2 1 theta offset in μm 3 0 aux 4 4 1 Auxiliary field for future use aux_5 5 1 Auxiliary field for future use aux_6 6 1 Auxiliary field for future use Temp_Comp_x 7 1 Temperature compensation in x Temp_Comp_y 8 1 Temperature compensation in y [9-31] 0 Reserved

Inquiry Registers for Illumination Features Offset Name Field Bit Value Description 140 Illum_controid_(—) Presence Inq 0 1 Presence of (Read) Inq this feature (1 . . . 3) 0 Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto Inq 6 0 Auto Mode Manual Inq 7 1 Manual mode (Controlled by the user) MIN Value  (8 . . . 19) 0 MIN value for this feature control MAX Value (20 . . . 31) 1FF MAX value for this feature control 144 Illum_latency_(—) Presence Inq 0 1 Presence of (Read) inq this feature (1 . . . 3) 0 Reserved Illum_latency  (4 . . . 31) 1A2C Illumination level unit in nanoseconds 148 Illum_step_(—) Presence_Inq 0 1 Presence of (Read) size_inq this feature (1 . . . 3) 0 Reserved Illum_step_(—)  (4 . . . 31) 2710 Illumination size level unit in nanoseconds 14C-154 Reserve 3 register addresses 158 Illum_type_1_(—) Presence_Inq 0 1 Presence of (Read) inq this feature (1 . . . 3) 0 Reserved Darkfield_Inq 4 1 It is a darkfield illuminator Brightfield_(—) 5 0 It is a Inq brightfield illuminator Type_3_Inq 6 0 It is a reflection illuminator Type_4_Inq 7 0 It is a active marker illuminator (8 . . . 31) zero Reserved 15C Illum_(—) Presence_Inq 0 1 Presence of (Read) duration_1_(—) this feature Inq (1 . . . 3) zero Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_Inq 7 1 Manual mode (Controlled by the user) MIN Value  (8 . . . 19) 0 MIN value for this feature control MAX Value (20 . . . 31) 3E8 MAX value for this feature control 160 Illum_(—) Presence_Inq 0 1 Presence of (Read) intensity_1_(—) this feature inq (1 . . . 3) zero Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_Inq 7 1 Manual mode (Controlled by the user) MIN Value  (8 . . . 19) 0 MIN value for this feature control MAX Value (20 . . . 31) BAA MAX value for this feature control 164 Illum_counter_(—) Presence_Inq 0 1 Presence of (Read) 1_inq this feature (1 . . . 3) zero Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto_Inq 6 1 Auto Mode (Camera will increase the counter every illumination flash) Manual_Inq 7 1 Manual mode(setting the counter with a specific number) MAX Value  (8 . . . 31) FFFFFF Max that can be written to the control 168-16C Reserve 2 register addresses 170 Illum_type_2_(—) Presence_Inq 0 1 Presence of (Read) Inq this feature (1 . . . 3) zero Reserved Darkfield_Inq 4 1 It is a darkfield illuminator Brightfield_(—) 5 0 It is a Inq brightfield illuminator Type_3_Inq 6 0 It is a Type 3 illuminator Type_4_Inq 7 0 It is a Type 4 illuminator  (8 . . . 31) zero Reserved 174 Illum_duration_(—) Presence Inq 0 1 Presence of (Read) 2_Inq this feature (1 . . . 3) zero Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature on and off Auto Inq 6 0 Auto Mode Manual Inq 7 1 Manual mode (Controlled by the user) MIN Value (8 . . . 19) 0 MIN value for this feature control MAX Value (20 . . . 31) 3E8 MAX value for this feature control 178 Illum_intensity_(—) Presence Inq 0 1 Presence of (Read) 2_Inq this feature (1 . . . 3) zero Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto Inq 6 0 Auto Mode Manual Inq 7 1 Manual mode (Controlled by the user) MIN Value  (8 . . . 19) 0 MIN value for this feature control MAX Value (20 . . . 31) 900 MAX value for this feature control 17C Illum_counter_(—) Presence Inq 0 1 Presence of (Read) 2_Inq this feature (1 . . . 3) zero Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto_Inq 6 1 Auto Mode (Camera will increase the counter every illumination flash) Manual_Inq 7 1 Manual mode (setting the counter with a specific number) MAX Value  (8 . . . 31) FFFFFF Max that can be written to the control 180-184 Reserve 2 register addresses 188 Illum_type_3_(—) Presence_Inq 0 0 Presence of (Read) Inq this feature [1-3] zero Reserved Darkfield_Inq 4 0 It is a darkfield illuminator Brightfield_(—) 5 0 It is a Inq brightfield illuminator Type_3_Inq 6 0 It is a Type 3 illuminator Type_4_Inq 7 0 It is a Type 4 illuminator  [8-31] zero Reserved 18C Illum_duration_(—) Presence_Inq 0 0 Presence of (Read) 3_Inq this feature [1-3] zero Reserved Read/Out_Inq 4 0 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto Inq 6 0 Auto Mode Manual_Inq 7 0 Manual mode (controlled by the user) MIN_Value  [8-19] 0 MIN value for this feature control MAX_Value [20-31] 000 MAX value for this feature control 190 Illum_(—) Presence_Inq 0 0 Presence of (Read) intensity_3_(—) this feature Inq [1-3] zero Reserved ReadOut_Inq 4 0 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_Inq 7 0 Manual mode (controlled by the user) MIN_Value  [8-19] 0 MIN value for this feature control MAX_Value [20-31] 000 MAX value for this feature control 194 Illum_counter_(—) Presence_Inq 0 0 Presence of (Read) 3_Inq this feature [1-3] zero Reserved ReadOut_Inq 4 0 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode (Camera will increase the counter every illumination flash) Manual_Inq 7 0 Manual mode (setting the counter with a specific number) MAX_Value  [8-31] 000000 Max that can be written to the control 198-19C Reserve 2 register address 1A0 Illum_type_4_(—) Presence_Inq 0 0 Presence of (Read) Inq this feature [1-3] zero Reserved Darkfield_Inq 4 0 It is a darkfield iluminator Brightfield_(—) 5 0 It is a Inq brightfield illuminator Type_3_Inq 6 0 It is a Type 3 illuminator Type_4_Inq 7 0 It is a Type 4 illuminator  [8-31] zero Reserved 1A4 Illum_duration_(—) Presence_Inq 0 0 Presence of 4_Inq this feature [1-3] zero Reserved ReadOut_Inq 4 0 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_Inq 7 0 Manual mode (controlled by the user) MIN_Value  [8-19] 0 MIN value for this feature control MAX_Value [20-31] 000 MAX value for this feature control 1A8 Illum_(—) Presence_Inq 0 0 Presence of intensity_4_(—) this feature Inq [1-3] zero Reserved ReadOut_Inq 4 0 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_Inq 7 0 Manual mode (controlled by the user) MIN_Value  [8-19] 0 MIN value for this feature control MAX_Value [20-31] 000 MAX value for this feature control 1AC Illum_counter_(—) Presence_Inq 0 0 Presence of 4_Inq this feature [1-3] zero Reserved ReadOut_Inq 4 0 Capability of reading the value of this feature On/Off_Inq 5 0 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode (Camera will increase the counter every illumination flash) Manual_Inq 7 0 Manual mode (setting the counter with a specific number) MAX_Value  [8-31] 000000 Max that can be written to the control

Inquiry Registers for Optical Features Offset Name Field Bit Value Description 200 Pixel_Size_(—) Presence Inq 0 1 Presence of (Read) Inq this feature [1-3] 0 Reserved Read/Out_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_Inq 7 1 Manual mode (Controlled by the user) MAX Value  [8-31] FFFFFF MAX value for this feature control 204 Auxillary_1_Inq Presence 0 1 Presence of 208 Auxillary_2_Inq Inq this feature 20C Auzillary_3_Inq (1 . . . 3) 0 Reserved (Read) ReadOut_Inq 4 1 Capability of reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_(—) 7 1 Manual mode Inq (Controlled by the user) MAX Value (20 . . . 31) FFFFFF MAX value for this feature control 210 DistortionA_1_1_Inq Presence 0 1 Presence of 214 DistortionA_1_2_Inq Inq this feature 218 DistortionA_1_3_Inq [1-3] zero Reserved 21C DistortionA_1_4_Inq ReadOut_(—) 4 1 Capability of 220 DistortionA_2_1_Inq Inq reading the 224 DistortionA_2_2_Inq value of this 228 DistortionA_2_3_Inq feature 230 DistortionA_2_4_Inq On/Off_(—) 5 1 Capability of 234 DistortionA_3_1_Inq Inq switching 238 DistortionA_3_2_Inq this feature 23C DistortionA_3_3_Inq on and off 240 DistortionA_3_4_Inq Auto_Inq 6 0 Auto Mode 244 DistortionA_4_1_Inq Manual_(—) 7 1 Manual mode 248 DistortionA_4_2_Inq Inq (Controlled 24C DistortionA_4_3_Inq by the user) (Read) DistortionA_4_4_Inq MAX Value [8-31] FFFFFF MAX value for this feature control 210 DistortionB_1_1_Inq Presence 0 1 Presence of 214 DistortionB_1_2_Inq Inq this feature 218 DistortionB_1_3_Inq [1-3] zero Reserved 21C DistortionB_1_4_Inq ReadOut_(—) 4 1 Capability of 220 DistortionB_2_1_Inq Inq reading the 224 DistortionB_2_2_Inq value of this 228 DistortionB_2_3_Inq feature 230 DistortionB_2_4_Inq On/Off_(—) 5 1 Capability of 234 DistortionB_3_1_Inq Inq switching this 238 DistortionB_3_2_Inq feature on and 23C DistortionB_3_3_Inq off 240 DistortionB_3_4_Inq Auto Inq 6 0 Auto Mode 244 DistortionB_4_1_Inq Manual_(—) 7 1 Manual mode 248 DistortionB_4_2_Inq Inq (Controlled by 24C DistortionB_4_3_Inq the user) (Read) DistortionB_4_4_Inq MAX  [8-31] FFFFFF MAX value for Value this feature control

Inquiry Registers for Mechanical Features Offset Name Field Bit Value Description 300 X_offset_Inq Presence 0 1 Presence of (Read) Inq this feature (1 . . . 3) 0 Reserved Read/Out_- 4 1 Capability of Inq reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_Inq 7 1 Manual mode (Controlled by the user)  [8-15] 0 Reserved MAX_Value [16 . . . 31] FFFF MAX value for this feature control 304 Y_offset_Inq Presence 0 1 Presence of (Read) Inq this feature (1 . . . 3) 0 Reserved Read/Out_- 4 1 Capability of Inq reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature on and off Auto_Inq 6 0 Auto Mode Manual_Inq 7 1 Manual mode (Controlled by the user) MIN Value  [8 . . . 15] 0 Reserved MAX Value [16 . . . 31] FFFF MAX value for this feature control 308 Theta_(—) Presence_(—) 0 1 Presence of this (Read) offest_(—) Inq feature Inq [1-3] 0 Reserved Read/Out_(—) 4 1 Capability of Inq reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature ON and OFF Auto_Inq 6 0 Auto mode Manual_Inq 7 1 Manual mode (controlled by the user)  [8-15] 0 Reserved MAX_Value [16-31] FFFF MAX value for this feature control 310 Auxillary_(—) Presence 0 1 Presence of this 4_Inq Inq feature 314 Auxillary_(—) (1 . . . 3) 0 Reserved 5_Inq Read/Out_(—) 4 1 Capability of 318 Auxillary_(—) Inq reading the (Read) 6_Inq value of this feature On/Off_Inq 5 1 Capability of switching this feature ON and OFF Auto_Inq 6 0 Auto mode Manual_Inq 7 1 Manual mode (controlled by the user) MAX_Value  [8-13] FFFFF MAX value for this feature control 31C Temp_Comp_(—) Presence 0 1 Presence of this x_Inq Inq feature 310 Temp_Comp_(—) (1 . . . 3) 0 Reserved y_Inq ReadOut_(—) 4 1 Capability of Inq reading the value of this feature On/Off_Inq 5 1 Capability of switching this feature ON and OFF Auto_Inq 6 0 Auto mode Manual_Inq 7 1 Manual mode (controlled by the user) Max_Value  [8-31] FFFFFF MAX value for this feature control Status and Control Registers for the Advanced Features Status and Control Registers for Communication Features

This status control provides a way to allocate an isochronous channel. After this control is activated, the One Shot command does not have to build-up a channel after the command. this will provide a short and predictable image intake time.

Status and Control Registers for Illumination Features Offset Name Field Bit Value Description 500 Illum_(—) Presence_Inq 0 1 Presence of (Read/ centroid this feature Write (1 . . . 5) 0 Reserved Volatile) ON_OFF 6 1 Write: Switch this feature ON/OFF Read: read current mode 0 - OFF; 1 - ON A_M_Mode 7 0 Write: Set the Mode Read: read the current mode 0 = Manual; 1 = Auto  8 . . . 19 0 Reserved Value 20 . . . 31 0 Value Write the value in auto mode. This field is ignored if read unit capability is not available, read value has no meaning. 504-508 Reserve 2 register addresses 50C Illum_(—) Presence_Inq 0 1 Presence of (Read/ duration_1 this feature Write 1 . . . 5 0 Reserved Volatile) ON_OFF 6 0 Write: Switch this feature ON/OFF Read: read current mode 0 = OFF; 1 = ON A_M_Mode 7 0 Write: Set the Mode Read: read the current mode 0 = Manual; 1 = Auto  8 . . . 19 0 Reserved Value 20 . . . 31 0 Value Write the value in auto mode: This field is ignored. If read unit capability is not available, read value has no meaning. 510 Illum_(—) Presence Inq 0 1 Presence of (Read/ intensity_1 this feature Write (1 . . . 5) zero Reserved Non- ON_OFF 6 1 Write: Switch Volatile) this feature ON/OFF Read: read current mode 0 = OFF; 1 = ON A_M_Mode 7 0 Write: Set the Mode Read: read the current mode 0 = Manual; 1 = Auto  8 . . . 19 0 Reserved Value (20 . . . 31) 0 Value Write the value in auto mode. This field is ignored. If read not capability is not available, read value has no meaning. 514 Illum_counter_1 Presence Inq 0 1 Presence of (Read/ this feature Write (1 . . . 5) zero Reserved Non- ON_OFF 6 1 Write: Volitile) Switch this feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 1 Write: Set the Mode Read: read current mode 0-Manual 1- Auto value  (8 . . . 31) 0 Value Write the Value in auto mode. This field is ignored. If read unit capability is not available, read value has no meaning. 518-51C Reserve register addresses 520 Illum_(—) Presence Inq 0 1 Presence of (Read/ duration_2 this feature Write (1 . . . 5) zero Reserved Volitile) ON_OFF 6 0 Write: Switch this feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0-Manual 1- Auto  (8 . . . 19) zero Reserved Value (20 . . . 31) 0 Value Write the value in auto mode. This field is ignored. If read unit capability is not available, read value has no meaning. 524 Illum_(—) Presence Inq 0 1 Presence of (Read/ intensity_2 this feature Write (l . . . 5) zero Reserved Non- ON_OFF 6 1 Write: Volatile) Switch this feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0-Manual 1- Auto  (8 . . . 19) zero Reserved Value (20 . . . 31) 0 Value Write the value in auto mode. This field is ignored. If read unit capability is not available, read value has no meaning. 528 Illum_counter_2 Presence_Inq 0 1 Presence of (Read/ this feature Write (1 . . . 5) zero Reserved Non- ON_OFF 6 1 Write: Volitile) Switch this feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 1 Write: Set the Mode Read: read current mode 0-Manual 1- Auto Value  (8 . . . 31) 0 Value Write the value in auto mode This field is ignored. If read unit capability is not available, read value has no meaning. 52C-530 Reserve 5 register addresses 534 Illum_(—) Presence_Inq 0 Presence of (Read/ duration_3 this feature Write) [1-5] zero Reserved Volatile ON_OFF 6 0 Write: Switch this feature ON/OFF Read: read current mode 0: OFF 1: ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0: Manual 1: Auto  [8-19] zero Reserved Value [20-31] 0 Value 538 Illum_(—) Presence_Inq 0 Presence of (Read/ Intensity_3 this feature Write) [1-5] zero Reserved Non- ON_OFF 6 0 Write: Volatile Switch this feature ON/OFF Read: read current mode 0: OFF 1: ON A_M_Mode 7 0 Write: Set the Mode Read: read the current mode 0: Manual 1: Auto  [8-19] zero Reserved Value [20-31] 0 Value 53C Illum_counter_3 Presence_Inq 0 0 Presence of (Read/ this feature Write) [1-5] zero Reserved Non- ON_OFF 6 0 Write: Volatile Switch this feature ON/OFF Read: read current mode 0: OFF 1: ON A_M_Mode 0 0 Write: Set the Mode Read: read the current mode 0: Manual 1: Auto Value  [8-31] 0 Value 540-544 Reserve 2 register address 548 Illum_(—) Presence_Inq 0 0 Presence of (Read/ duration_4 this feature Write) [1-5] zero Reserved Volatile ON_OFF 6 0 Write: Switch this feature ON/OFF Read: read current mode 0: OFF 1: ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0: Manual 1: Auto  [8-19] zero Reserved Value [20-31] 0 Value 54C Illum_(—) Presence_Inq 0 0 Presence of (Read/ intensity_4 this feature Write) [1-5] zero Reserved Non- ON_OFF 6 0 Write: Volatile Switch this feature ON/OFF Read: read current mode 0: OFF 1: ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0: Manual 1: Auto  [8-19] zero Reserved Value [20-31] 0 Value 550 Illum_counter_4 Presence_Inq 0 0 Presence of (Read/ this feature Write) [1-5] zero Reserved Non- ON_OFF 6 0 Write: Volatile Switch this feature ON/OFF Read: read current mode 0: OFF 1: ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0: Manual 1: Auto Value  [8-31] 0 Value

Status and Control Registers for Optical Features Offset Name Field Bit Value Description 600 Pixel_Size Presence 0 1 Presence of (Read/ Inq this feature Write [1-5] zero Reserved Non- ON_OFF 6 0 Write: Switch Volitile) this feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 1 Write: Set the Mode Read: read current mode 0-Manual 1- Auto  [8-15] zero Reserved Value [16-31] 0 Value Write the value in auto mode. This field is ignored. If read unit capability is not available, read value has no meaning. 604 Auxillary_1 Presence 0 1 Presence of 608 Auxillary_2 Inq this feature 60C Auxillary_3 [1 . . . 5] zero Reserved (Read/ ON_OFF 6 1 Write: Switch Write) this feature Non- ON/OFF Volatile Read: read current mode 0-OFF 1-ON A_M_Mode 7 1 Write: Set the Mode Read: read current mode 0-Manual 1- Auto  [8-31] zero Reserved 610 DistortionA_1_1_Inq Presence 0 1 Presence of 614 DistortionA_1_2_Inq Inq this feature 618 DistortionA_1_3_Inq [1-5] zero Reserved 61C DistortionA_1_4_Inq ON/OFF 6 0 Write: Switch 620 DistortionA_2_1_Inq this feature 624 DistortionA_2_2_Inq ON/OFF 628 DistortionA_2_3_Inq Read: read 630 DistortionA_2_4_Inq current mode 634 DistortionA_3_1_Inq 0: OFF = Data 638 DistortionA_3_2_Inq Invalid 63C DistortionA_3_3_Inq 1: ON = Date 640 DistortionA_3_4_Inq Value 644 DistortionA_4_1_Inq A_M_Mode 7 0 Write: Set the 648 DistortionA_4_2_Inq Mode 64C DistortionA_4_3_Inq Read: read the (Read/ DistortionA_4_4_Inq current mode Write) 0: = Manual, Non- 1: Auto Volatile Value  [8-31] 0 Value 650 DistortionB_1_1_Inq Presence 0 1 Presence of 654 DistortionB_1_2_Inq Inq this feature 658 DistortionB_1_3_Inq [1-5] zero Reserved 65C DistortionB_1_4_Inq ON/OFF 6 0 Write: Switch 660 DistortionB_2_1_Inq this feature 664 DistortionB_2_2_Inq ON/OFF 668 DistortionB_2_3_Inq Read: read 670 DistortionB_2_4_Inq current mode 674 DistortionB_3_1_Inq 0: OFF = Data 678 DistortionB_3_2_Inq Invalid 67C DistortionB_3_3_Inq 1: ON = Date 680 DistortionB_3_4_Inq Value 684 DistortionB_4_1_Inq A_M_Mode 7 0 Write: Set the 688 DistortionB_4_2_Inq Mode 68C DistortionB_4_3_Inq Read: read the (Read/ DistortionB_4_4_Inq current mode Write) 0: = Manual, Non- 1: Auto Volatile Value  [8-31] 1 Value

Status and Control Registers for Mechanical Features Offset Name Field Bit Value Description 700 x_Offset Presence_Inq 0 1 Presence of (Read/ this feature Write [1-5] zero Reserved Non- ON_OFF 6 0 Write: Switch Volatile) this feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0-Manual 1- Auto  [8-15] zero Reserved Value [16-31] Calibrated Signed 16 bit value range −32767 to +32767. Physical scale is 0.01 micrometer/bit Physical range is −327.67 to +327.67 micrometers. 704 Y_Offset Presence_Inq 0 1 Presence of (Read/Write this feature Non- [1-5] zero Reserved Volitile) ON_OFF 6 0 Write: Switch this feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0-Manual 1- Auto  [8-15] zero Reserved Value [16-31] Calibrated Signed 16 bit value range −32767 to +32767. Physical scale is 0.01 micrometer/bit Physical range is −327.67 to +327.67 micrometers. 708 Theta_(—) Presence Inq 0 1 Presence of (Read/Write Offset this feature Non- (1 . . . 5) zero Reserved Volitile) ON_OFF 6 0 Write: Switch this feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0-Manual 1- Auto  [8-15] zero Reserved Value [16 . . . 31] Calibrated Signed 16 bit value range −32767 to +32767. Physical scale is 0.1 milliradians/ bit. Physical range is −3276.7 to +3276.7 milliradians. 710 Auxillary_4 Presence_(—) 0 1 Presence of this 714 Auxillary_5 Inq feature 718 Auxillary_6 [1-5] zero Reserved (Read/ ON_OFF 6 0 Write: Switch this Write) feature ON/OFF Non- Read: read current Volitile mode 0-OFF 1-ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0-Manual 1-Auto  [8-31] 0 Value 71C Temp_Comp_x Presence 0 1 Presence of this 720 Temp_Comp_y Inq feature (Read/ (1 . . . 5) zero Reserved Write Non- ON_OFF 6 0 Write: Switch this Volitile) feature ON/OFF Read: read current mode 0-OFF 1-ON A_M_Mode 7 0 Write: Set the Mode Read: read current mode 0-Manual 1-Auto  [8-31] 0 Value

Although the present invention has been described with reference to preferred embodiments, workers skilled n the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention. 

1. An electronic assembly machine for performing an assembly operation on a workpiece, the machine comprising: a robotic system for performing the assembly operation based; a controller coupled to the robotic system and providing signals to the robotic system to cause the robotic system to perform the assembly operation; an image acquisition device coupled to the controller and disposed to acquire an image of the workpiece; wherein the image acquisition device is coupled to the controller through an interface operating in accordance with a Specification; and wherein the image acquisition device includes an illuminator that is controllable by the controller through the interface.
 2. The machine of claim 1, wherein the illuminator is a darkfield illuminator.
 3. The machine of claim 1, wherein the illuminator is a brightfield illuminator.
 4. The machine of claim 1, wherein the controller monitors a number of energizations of the illuminator.
 5. The machine of claim 1, wherein the image acquisition device includes a plurality of illuminators each controllable by the controller.
 6. The machine of claim 1, wherein the image acquisition device includes characterization registers for providing information relating to capabilities of the image acquisition device.
 7. The machine of claim 1, and further comprising storage for a parameter related to the image acquisition system.
 8. The machine of claim 7, wherein the parameter is an optical parameter.
 9. The machine of claim 7 wherein the parameter is a mechanical parameter.
 10. The machine of claim 1, wherein the image acquisition device includes a board align camera.
 11. The machine of claim 1, wherein an additional image acquisition device is coupled to the controller through the interface. 